README.TXT ////////////////////////////////////////////////// // From the compressed package ECKELT01.ZIP 2/21/95 // Copyright (c) Bruce Eckel, 1995 // Source code file from the book "Thinking in C++", // Prentice Hall, 1995, ISBN: 0-13-917709-4 // All rights reserved EXCEPT as allowed by the following // statements: You may freely use this file for your own // work, including modifications and distribution in // executable form only. You may copy and distribute this // file, as long as it is only distributed in the complete // (compressed) package with the other files from this // book and you do not remove this copyright and notice. // You may not distribute modified versions of the source // code in this package. This package may be freely placed // on bulletin boards, internet nodes, shareware disks and // product vendor disks. You may not use this file in // printed media without the express permission of the // author. Bruce Eckel makes no // representation about the suitability of this software // for any purpose. It is provided "as is" without express // or implied warranty of any kind. The entire risk as to // the quality and performance of the software is with // you. Should the software prove defective, you assume // the cost of all necessary servicing, repair, or // correction. // If you think you've found an error, please // email all modified files with loudly commented changes // to: eckel@aol.com (please use the same // address for non-code errors found in the book). ////////////////////////////////////////////////// The code in this package is, I believe, correct in relationship to the current ANSI/ISO draft standard and the features that have been accepted. It has been tested across 4 compilers to ensure that one or more of them accepts the code according to what I believe is correct. However, please note that not all compilers implement all features. Microsoft VC++ 1.5 does not support templates or exception handling. Microsoft VC++ 2.0 supports most features of templates and exception handling WITHOUT exception specifications, but NOT run-time type identification, so a number of examples in Chapters 14 and 16 will not compile and NONE of the examples in Chapter 17 will compile with VC++ 2.0. Future versions of Microsoft C++ will be compliant and will compile these examples. All the files in this package SHOULD compile without errors on a conforming compiler (although all compilers will emit warnings for the form main() {}. The standard says the compiler should automatically insert return 0; for the special case of main().). Thus, to discover when warnings or error messages SHOULD be produced, you must look at the individual files; most of the commented-out portions have the word "error" near them, so you can easily grep. I have not yet automated this process. To find the errors revealed in your compiler, do the following: (1) Copy this disk to a fresh subdirectory. Unpack the file by saying: unzip -d eckelt01.zip This will create all necessary subdirectories. (2) Run the following batch file: BCCTEST.BAT for Borland C++ (creates BCCTEST.OUT) SCTEST.BAT for Symantec C++ (creates SCTEST.OUT) CLTEST.BAT for Visual C++ 2.0 under Windows NT 3.5 (creates CLTEST.OUT) HCTEST.BAT for MetaWare C++ under Windows NT 3.5 (creates HCTEST.OUT) The created file will be in the base directory for this source code and will contain all errors generated by compiling all the files in the book, separated by chapter indicators. There are also simple makefiles in each directory. (3) You can also just move to the subdirectory and try compiling all the files with the command line compiler, without linking, to check for errors. For example, with Borland you can do this by saying: bcc -c *.cpp